

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 8.00.0595 */
/* at Sun Feb 10 16:41:52 2013
 */
/* Compiler settings for com.idl:
    Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0595 
    protocol : dce , ms_ext, c_ext, robust
    error checks: allocation ref bounds_check enum stub_data 
    VC __declspec() decoration level: 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
         DECLSPEC_UUID(), MIDL_INTERFACE()
*/
/* @@MIDL_FILE_HEADING(  ) */

#pragma warning( disable: 4049 )  /* more than 64k source lines */


/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__


#ifndef __com_i_h__
#define __com_i_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef __IScriptableDevice_FWD_DEFINED__
#define __IScriptableDevice_FWD_DEFINED__
typedef interface IScriptableDevice IScriptableDevice;

#endif 	/* __IScriptableDevice_FWD_DEFINED__ */


#ifndef __IScriptableDeviceCapability_FWD_DEFINED__
#define __IScriptableDeviceCapability_FWD_DEFINED__
typedef interface IScriptableDeviceCapability IScriptableDeviceCapability;

#endif 	/* __IScriptableDeviceCapability_FWD_DEFINED__ */


#ifndef __IScriptableImage_FWD_DEFINED__
#define __IScriptableImage_FWD_DEFINED__
typedef interface IScriptableImage IScriptableImage;

#endif 	/* __IScriptableImage_FWD_DEFINED__ */


#ifndef __IScriptableImageIndexer_FWD_DEFINED__
#define __IScriptableImageIndexer_FWD_DEFINED__
typedef interface IScriptableImageIndexer IScriptableImageIndexer;

#endif 	/* __IScriptableImageIndexer_FWD_DEFINED__ */


#ifndef __IScriptableDeviceIndexer_FWD_DEFINED__
#define __IScriptableDeviceIndexer_FWD_DEFINED__
typedef interface IScriptableDeviceIndexer IScriptableDeviceIndexer;

#endif 	/* __IScriptableDeviceIndexer_FWD_DEFINED__ */


#ifndef __IScriptableControl_FWD_DEFINED__
#define __IScriptableControl_FWD_DEFINED__
typedef interface IScriptableControl IScriptableControl;

#endif 	/* __IScriptableControl_FWD_DEFINED__ */


#ifndef ___IScriptableControlEvents_FWD_DEFINED__
#define ___IScriptableControlEvents_FWD_DEFINED__
typedef interface _IScriptableControlEvents _IScriptableControlEvents;

#endif 	/* ___IScriptableControlEvents_FWD_DEFINED__ */


#ifndef __ScriptableControl_FWD_DEFINED__
#define __ScriptableControl_FWD_DEFINED__

#ifdef __cplusplus
typedef class ScriptableControl ScriptableControl;
#else
typedef struct ScriptableControl ScriptableControl;
#endif /* __cplusplus */

#endif 	/* __ScriptableControl_FWD_DEFINED__ */


#ifndef __ScriptableDevice_FWD_DEFINED__
#define __ScriptableDevice_FWD_DEFINED__

#ifdef __cplusplus
typedef class ScriptableDevice ScriptableDevice;
#else
typedef struct ScriptableDevice ScriptableDevice;
#endif /* __cplusplus */

#endif 	/* __ScriptableDevice_FWD_DEFINED__ */


#ifndef __ScriptableDeviceIndexer_FWD_DEFINED__
#define __ScriptableDeviceIndexer_FWD_DEFINED__

#ifdef __cplusplus
typedef class ScriptableDeviceIndexer ScriptableDeviceIndexer;
#else
typedef struct ScriptableDeviceIndexer ScriptableDeviceIndexer;
#endif /* __cplusplus */

#endif 	/* __ScriptableDeviceIndexer_FWD_DEFINED__ */


#ifndef __ScriptableDeviceCapability_FWD_DEFINED__
#define __ScriptableDeviceCapability_FWD_DEFINED__

#ifdef __cplusplus
typedef class ScriptableDeviceCapability ScriptableDeviceCapability;
#else
typedef struct ScriptableDeviceCapability ScriptableDeviceCapability;
#endif /* __cplusplus */

#endif 	/* __ScriptableDeviceCapability_FWD_DEFINED__ */


#ifndef __ScriptableImageIndexer_FWD_DEFINED__
#define __ScriptableImageIndexer_FWD_DEFINED__

#ifdef __cplusplus
typedef class ScriptableImageIndexer ScriptableImageIndexer;
#else
typedef struct ScriptableImageIndexer ScriptableImageIndexer;
#endif /* __cplusplus */

#endif 	/* __ScriptableImageIndexer_FWD_DEFINED__ */


#ifndef __ScriptableImage_FWD_DEFINED__
#define __ScriptableImage_FWD_DEFINED__

#ifdef __cplusplus
typedef class ScriptableImage ScriptableImage;
#else
typedef struct ScriptableImage ScriptableImage;
#endif /* __cplusplus */

#endif 	/* __ScriptableImage_FWD_DEFINED__ */


/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"

#ifdef __cplusplus
extern "C"{
#endif 



#ifndef __comLib_LIBRARY_DEFINED__
#define __comLib_LIBRARY_DEFINED__

/* library comLib */
/* [helpstring][version][uuid] */ 


EXTERN_C const IID LIBID_comLib;

#ifndef __IScriptableDevice_INTERFACE_DEFINED__
#define __IScriptableDevice_INTERFACE_DEFINED__

/* interface IScriptableDevice */
/* [unique][helpstring][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IScriptableDevice;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A2D64DA2-CB06-457C-99FE-44658F2912FB")
    IScriptableDevice : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_index( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_id( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_uid( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_manufacturer( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_productFamily( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_productName( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IScriptableDeviceVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IScriptableDevice * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IScriptableDevice * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IScriptableDevice * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IScriptableDevice * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IScriptableDevice * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IScriptableDevice * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IScriptableDevice * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_index )( 
            IScriptableDevice * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_id )( 
            IScriptableDevice * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_uid )( 
            IScriptableDevice * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_manufacturer )( 
            IScriptableDevice * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_productFamily )( 
            IScriptableDevice * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_productName )( 
            IScriptableDevice * This,
            /* [retval][out] */ VARIANT *pVal);
        
        END_INTERFACE
    } IScriptableDeviceVtbl;

    interface IScriptableDevice
    {
        CONST_VTBL struct IScriptableDeviceVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IScriptableDevice_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IScriptableDevice_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IScriptableDevice_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IScriptableDevice_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IScriptableDevice_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IScriptableDevice_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IScriptableDevice_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IScriptableDevice_get_index(This,pVal)	\
    ( (This)->lpVtbl -> get_index(This,pVal) ) 

#define IScriptableDevice_get_id(This,pVal)	\
    ( (This)->lpVtbl -> get_id(This,pVal) ) 

#define IScriptableDevice_get_uid(This,pVal)	\
    ( (This)->lpVtbl -> get_uid(This,pVal) ) 

#define IScriptableDevice_get_manufacturer(This,pVal)	\
    ( (This)->lpVtbl -> get_manufacturer(This,pVal) ) 

#define IScriptableDevice_get_productFamily(This,pVal)	\
    ( (This)->lpVtbl -> get_productFamily(This,pVal) ) 

#define IScriptableDevice_get_productName(This,pVal)	\
    ( (This)->lpVtbl -> get_productName(This,pVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IScriptableDevice_INTERFACE_DEFINED__ */


#ifndef __IScriptableDeviceCapability_INTERFACE_DEFINED__
#define __IScriptableDeviceCapability_INTERFACE_DEFINED__

/* interface IScriptableDeviceCapability */
/* [unique][helpstring][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IScriptableDeviceCapability;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("EA0B3BB2-1059-45B8-BC93-EC6CD1175C07")
    IScriptableDeviceCapability : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_cap( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_type( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_valueType( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_item( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_count( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_items( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_defaultIndex( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_currentIndex( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_min( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_max( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_step( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_defaultValue( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_currentValue( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IScriptableDeviceCapabilityVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IScriptableDeviceCapability * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IScriptableDeviceCapability * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IScriptableDeviceCapability * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IScriptableDeviceCapability * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IScriptableDeviceCapability * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IScriptableDeviceCapability * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IScriptableDeviceCapability * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_cap )( 
            IScriptableDeviceCapability * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_type )( 
            IScriptableDeviceCapability * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_valueType )( 
            IScriptableDeviceCapability * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_item )( 
            IScriptableDeviceCapability * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_count )( 
            IScriptableDeviceCapability * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_items )( 
            IScriptableDeviceCapability * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_defaultIndex )( 
            IScriptableDeviceCapability * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentIndex )( 
            IScriptableDeviceCapability * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_min )( 
            IScriptableDeviceCapability * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_max )( 
            IScriptableDeviceCapability * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_step )( 
            IScriptableDeviceCapability * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_defaultValue )( 
            IScriptableDeviceCapability * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_currentValue )( 
            IScriptableDeviceCapability * This,
            /* [retval][out] */ VARIANT *pVal);
        
        END_INTERFACE
    } IScriptableDeviceCapabilityVtbl;

    interface IScriptableDeviceCapability
    {
        CONST_VTBL struct IScriptableDeviceCapabilityVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IScriptableDeviceCapability_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IScriptableDeviceCapability_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IScriptableDeviceCapability_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IScriptableDeviceCapability_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IScriptableDeviceCapability_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IScriptableDeviceCapability_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IScriptableDeviceCapability_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IScriptableDeviceCapability_get_cap(This,pVal)	\
    ( (This)->lpVtbl -> get_cap(This,pVal) ) 

#define IScriptableDeviceCapability_get_type(This,pVal)	\
    ( (This)->lpVtbl -> get_type(This,pVal) ) 

#define IScriptableDeviceCapability_get_valueType(This,pVal)	\
    ( (This)->lpVtbl -> get_valueType(This,pVal) ) 

#define IScriptableDeviceCapability_get_item(This,pVal)	\
    ( (This)->lpVtbl -> get_item(This,pVal) ) 

#define IScriptableDeviceCapability_get_count(This,pVal)	\
    ( (This)->lpVtbl -> get_count(This,pVal) ) 

#define IScriptableDeviceCapability_get_items(This,pVal)	\
    ( (This)->lpVtbl -> get_items(This,pVal) ) 

#define IScriptableDeviceCapability_get_defaultIndex(This,pVal)	\
    ( (This)->lpVtbl -> get_defaultIndex(This,pVal) ) 

#define IScriptableDeviceCapability_get_currentIndex(This,pVal)	\
    ( (This)->lpVtbl -> get_currentIndex(This,pVal) ) 

#define IScriptableDeviceCapability_get_min(This,pVal)	\
    ( (This)->lpVtbl -> get_min(This,pVal) ) 

#define IScriptableDeviceCapability_get_max(This,pVal)	\
    ( (This)->lpVtbl -> get_max(This,pVal) ) 

#define IScriptableDeviceCapability_get_step(This,pVal)	\
    ( (This)->lpVtbl -> get_step(This,pVal) ) 

#define IScriptableDeviceCapability_get_defaultValue(This,pVal)	\
    ( (This)->lpVtbl -> get_defaultValue(This,pVal) ) 

#define IScriptableDeviceCapability_get_currentValue(This,pVal)	\
    ( (This)->lpVtbl -> get_currentValue(This,pVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IScriptableDeviceCapability_INTERFACE_DEFINED__ */


#ifndef __IScriptableImage_INTERFACE_DEFINED__
#define __IScriptableImage_INTERFACE_DEFINED__

/* interface IScriptableImage */
/* [unique][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IScriptableImage;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("F3875995-5865-4C5E-ADB6-91CE2B96BAB0")
    IScriptableImage : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_width( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_height( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_resolution( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_pixelType( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_index( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE getImageData( 
            /* [in] */ VARIANT *pX,
            /* [in] */ VARIANT *pY,
            /* [in] */ VARIANT *pWidth,
            /* [in] */ VARIANT *pHeight,
            /* [retval][out] */ VARIANT *pResult) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE getThumbnailUrl( 
            /* [retval][out] */ VARIANT *pResult) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE getPixel( 
            /* [in] */ VARIANT *pX,
            /* [in] */ VARIANT *pY,
            /* [retval][out] */ VARIANT *pResult) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE setPixel( 
            /* [in] */ VARIANT *pX,
            /* [in] */ VARIANT *pY,
            /* [in] */ VARIANT *pValue) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE rotate( 
            /* [in] */ VARIANT *pDegrees) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE crop( 
            /* [in] */ VARIANT *pX,
            /* [in] */ VARIANT *pY,
            /* [in] */ VARIANT *pWidth,
            /* [in] */ VARIANT *pHeight) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IScriptableImageVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IScriptableImage * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IScriptableImage * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IScriptableImage * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IScriptableImage * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IScriptableImage * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IScriptableImage * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IScriptableImage * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_width )( 
            IScriptableImage * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_height )( 
            IScriptableImage * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_resolution )( 
            IScriptableImage * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_pixelType )( 
            IScriptableImage * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_index )( 
            IScriptableImage * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *getImageData )( 
            IScriptableImage * This,
            /* [in] */ VARIANT *pX,
            /* [in] */ VARIANT *pY,
            /* [in] */ VARIANT *pWidth,
            /* [in] */ VARIANT *pHeight,
            /* [retval][out] */ VARIANT *pResult);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *getThumbnailUrl )( 
            IScriptableImage * This,
            /* [retval][out] */ VARIANT *pResult);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *getPixel )( 
            IScriptableImage * This,
            /* [in] */ VARIANT *pX,
            /* [in] */ VARIANT *pY,
            /* [retval][out] */ VARIANT *pResult);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *setPixel )( 
            IScriptableImage * This,
            /* [in] */ VARIANT *pX,
            /* [in] */ VARIANT *pY,
            /* [in] */ VARIANT *pValue);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *rotate )( 
            IScriptableImage * This,
            /* [in] */ VARIANT *pDegrees);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *crop )( 
            IScriptableImage * This,
            /* [in] */ VARIANT *pX,
            /* [in] */ VARIANT *pY,
            /* [in] */ VARIANT *pWidth,
            /* [in] */ VARIANT *pHeight);
        
        END_INTERFACE
    } IScriptableImageVtbl;

    interface IScriptableImage
    {
        CONST_VTBL struct IScriptableImageVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IScriptableImage_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IScriptableImage_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IScriptableImage_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IScriptableImage_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IScriptableImage_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IScriptableImage_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IScriptableImage_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IScriptableImage_get_width(This,pVal)	\
    ( (This)->lpVtbl -> get_width(This,pVal) ) 

#define IScriptableImage_get_height(This,pVal)	\
    ( (This)->lpVtbl -> get_height(This,pVal) ) 

#define IScriptableImage_get_resolution(This,pVal)	\
    ( (This)->lpVtbl -> get_resolution(This,pVal) ) 

#define IScriptableImage_get_pixelType(This,pVal)	\
    ( (This)->lpVtbl -> get_pixelType(This,pVal) ) 

#define IScriptableImage_get_index(This,pVal)	\
    ( (This)->lpVtbl -> get_index(This,pVal) ) 

#define IScriptableImage_getImageData(This,pX,pY,pWidth,pHeight,pResult)	\
    ( (This)->lpVtbl -> getImageData(This,pX,pY,pWidth,pHeight,pResult) ) 

#define IScriptableImage_getThumbnailUrl(This,pResult)	\
    ( (This)->lpVtbl -> getThumbnailUrl(This,pResult) ) 

#define IScriptableImage_getPixel(This,pX,pY,pResult)	\
    ( (This)->lpVtbl -> getPixel(This,pX,pY,pResult) ) 

#define IScriptableImage_setPixel(This,pX,pY,pValue)	\
    ( (This)->lpVtbl -> setPixel(This,pX,pY,pValue) ) 

#define IScriptableImage_rotate(This,pDegrees)	\
    ( (This)->lpVtbl -> rotate(This,pDegrees) ) 

#define IScriptableImage_crop(This,pX,pY,pWidth,pHeight)	\
    ( (This)->lpVtbl -> crop(This,pX,pY,pWidth,pHeight) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IScriptableImage_INTERFACE_DEFINED__ */


#ifndef __IScriptableImageIndexer_INTERFACE_DEFINED__
#define __IScriptableImageIndexer_INTERFACE_DEFINED__

/* interface IScriptableImageIndexer */
/* [unique][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IScriptableImageIndexer;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("E57A6E99-52BE-4FC9-8084-9585E72D0C7A")
    IScriptableImageIndexer : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_length( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_count( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_current( 
            /* [retval][out] */ VARIANT *pResult) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IScriptableImageIndexerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IScriptableImageIndexer * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IScriptableImageIndexer * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IScriptableImageIndexer * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IScriptableImageIndexer * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IScriptableImageIndexer * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IScriptableImageIndexer * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IScriptableImageIndexer * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( 
            IScriptableImageIndexer * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_count )( 
            IScriptableImageIndexer * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_current )( 
            IScriptableImageIndexer * This,
            /* [retval][out] */ VARIANT *pResult);
        
        END_INTERFACE
    } IScriptableImageIndexerVtbl;

    interface IScriptableImageIndexer
    {
        CONST_VTBL struct IScriptableImageIndexerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IScriptableImageIndexer_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IScriptableImageIndexer_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IScriptableImageIndexer_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IScriptableImageIndexer_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IScriptableImageIndexer_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IScriptableImageIndexer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IScriptableImageIndexer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IScriptableImageIndexer_get_length(This,pVal)	\
    ( (This)->lpVtbl -> get_length(This,pVal) ) 

#define IScriptableImageIndexer_get_count(This,pVal)	\
    ( (This)->lpVtbl -> get_count(This,pVal) ) 

#define IScriptableImageIndexer_get_current(This,pResult)	\
    ( (This)->lpVtbl -> get_current(This,pResult) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IScriptableImageIndexer_INTERFACE_DEFINED__ */


#ifndef __IScriptableDeviceIndexer_INTERFACE_DEFINED__
#define __IScriptableDeviceIndexer_INTERFACE_DEFINED__

/* interface IScriptableDeviceIndexer */
/* [unique][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IScriptableDeviceIndexer;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("5DEFD4C3-A929-493E-AC40-4F2E78CD3FDC")
    IScriptableDeviceIndexer : public IDispatch
    {
    public:
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_length( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_count( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IScriptableDeviceIndexerVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IScriptableDeviceIndexer * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IScriptableDeviceIndexer * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IScriptableDeviceIndexer * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IScriptableDeviceIndexer * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IScriptableDeviceIndexer * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IScriptableDeviceIndexer * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IScriptableDeviceIndexer * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_length )( 
            IScriptableDeviceIndexer * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_count )( 
            IScriptableDeviceIndexer * This,
            /* [retval][out] */ VARIANT *pVal);
        
        END_INTERFACE
    } IScriptableDeviceIndexerVtbl;

    interface IScriptableDeviceIndexer
    {
        CONST_VTBL struct IScriptableDeviceIndexerVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IScriptableDeviceIndexer_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IScriptableDeviceIndexer_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IScriptableDeviceIndexer_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IScriptableDeviceIndexer_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IScriptableDeviceIndexer_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IScriptableDeviceIndexer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IScriptableDeviceIndexer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IScriptableDeviceIndexer_get_length(This,pVal)	\
    ( (This)->lpVtbl -> get_length(This,pVal) ) 

#define IScriptableDeviceIndexer_get_count(This,pVal)	\
    ( (This)->lpVtbl -> get_count(This,pVal) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IScriptableDeviceIndexer_INTERFACE_DEFINED__ */


#ifndef __IScriptableControl_INTERFACE_DEFINED__
#define __IScriptableControl_INTERFACE_DEFINED__

/* interface IScriptableControl */
/* [unique][helpstring][nonextensible][dual][uuid][object] */ 


EXTERN_C const IID IID_IScriptableControl;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("A129934E-EB94-402F-9389-7E8E0324D77D")
    IScriptableControl : public IDispatch
    {
    public:
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE scan( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE rescan( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE upload( 
            /* [in] */ VARIANT *pPages,
            /* [in] */ VARIANT *pFilename,
            /* [in] */ VARIANT *pFormat,
            /* [in] */ VARIANT *pUrl,
            /* [in] */ VARIANT *pUploadId,
            /* [retval][out] */ VARIANT *pResult) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE saveToFile( 
            /* [in] */ VARIANT *pPages,
            /* [in] */ VARIANT *pFormat,
            /* [in] */ VARIANT *pPath) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE getDevices( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE panX( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE panY( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE pan( 
            /* [in] */ VARIANT *pValX,
            /* [in] */ VARIANT *pValY) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE rotate( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE crop( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE selectImage( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE selectNextImage( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE selectPreviousImage( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE connect( 
            /* [retval][out] */ VARIANT *pResult) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE disconnect( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE getCap( 
            /* [in] */ VARIANT *pCap,
            /* [retval][out] */ VARIANT *pResult) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE clear( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE setFilter( 
            /* [in] */ VARIANT *pFormat,
            /* [in] */ VARIANT *pPixelType,
            /* [in] */ VARIANT *pFilter) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE resume( 
            /* [in] */ VARIANT *pProceed) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE initializeDevice( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE focus( void) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE deleteImage( 
            /* [in] */ VARIANT *pIndex) = 0;
        
        virtual /* [id] */ HRESULT STDMETHODCALLTYPE shiftImage( 
            /* [in] */ VARIANT *pIndex) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_devices( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_pixelType( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_pixelType( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_resolution( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_resolution( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_zoomTool( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_zoomTool( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_zoom( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_zoom( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_panTool( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_panTool( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_driverModel( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_driverModel( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_showDeviceUI( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_showDeviceUI( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_selectedImageIndex( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_selectedImageIndex( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_device( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_device( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_deviceIndex( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_deviceIndex( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_cropTool( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_cropTool( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_paperSource( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_paperSource( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_imageQuality( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_imageQuality( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_contrast( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_contrast( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_version( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_autoPosition( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_autoPosition( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_autoCompress( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_autoCompress( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_autoCompressionLevel( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_autoCompressionLevel( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_autoCompressInBackground( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_autoCompressInBackground( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_autoPause( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propput] */ HRESULT STDMETHODCALLTYPE put_autoPause( 
            /* [in] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_isPlatformSupported( 
            /* [retval][out] */ VARIANT *pVal) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_isFlatbedSupported( 
            /* [retval][out] */ VARIANT *pResult) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_isFeederSupported( 
            /* [retval][out] */ VARIANT *pResult) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_isDuplexSupported( 
            /* [retval][out] */ VARIANT *pResult) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_selectedIndex( 
            /* [retval][out] */ VARIANT *pResult) = 0;
        
        virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_images( 
            /* [retval][out] */ VARIANT *pResult) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct IScriptableControlVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            IScriptableControl * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            IScriptableControl * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            IScriptableControl * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            IScriptableControl * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            IScriptableControl * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            IScriptableControl * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            IScriptableControl * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *scan )( 
            IScriptableControl * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *rescan )( 
            IScriptableControl * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *upload )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pPages,
            /* [in] */ VARIANT *pFilename,
            /* [in] */ VARIANT *pFormat,
            /* [in] */ VARIANT *pUrl,
            /* [in] */ VARIANT *pUploadId,
            /* [retval][out] */ VARIANT *pResult);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *saveToFile )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pPages,
            /* [in] */ VARIANT *pFormat,
            /* [in] */ VARIANT *pPath);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *getDevices )( 
            IScriptableControl * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *panX )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *panY )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *pan )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pValX,
            /* [in] */ VARIANT *pValY);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *rotate )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *crop )( 
            IScriptableControl * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *selectImage )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *selectNextImage )( 
            IScriptableControl * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *selectPreviousImage )( 
            IScriptableControl * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *connect )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pResult);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *disconnect )( 
            IScriptableControl * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *getCap )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pCap,
            /* [retval][out] */ VARIANT *pResult);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *clear )( 
            IScriptableControl * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *setFilter )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pFormat,
            /* [in] */ VARIANT *pPixelType,
            /* [in] */ VARIANT *pFilter);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *resume )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pProceed);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *initializeDevice )( 
            IScriptableControl * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *focus )( 
            IScriptableControl * This);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *deleteImage )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pIndex);
        
        /* [id] */ HRESULT ( STDMETHODCALLTYPE *shiftImage )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pIndex);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_devices )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_pixelType )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_pixelType )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_resolution )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_resolution )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_zoomTool )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_zoomTool )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_zoom )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_zoom )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_panTool )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_panTool )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_driverModel )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_driverModel )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_showDeviceUI )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_showDeviceUI )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedImageIndex )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_selectedImageIndex )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_device )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_device )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_deviceIndex )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_deviceIndex )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_cropTool )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_cropTool )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_paperSource )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_paperSource )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_imageQuality )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_imageQuality )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_contrast )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_contrast )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_version )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_autoPosition )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_autoPosition )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_autoCompress )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_autoCompress )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_autoCompressionLevel )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_autoCompressionLevel )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_autoCompressInBackground )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_autoCompressInBackground )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_autoPause )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_autoPause )( 
            IScriptableControl * This,
            /* [in] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isPlatformSupported )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pVal);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isFlatbedSupported )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pResult);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isFeederSupported )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pResult);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_isDuplexSupported )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pResult);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_selectedIndex )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pResult);
        
        /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_images )( 
            IScriptableControl * This,
            /* [retval][out] */ VARIANT *pResult);
        
        END_INTERFACE
    } IScriptableControlVtbl;

    interface IScriptableControl
    {
        CONST_VTBL struct IScriptableControlVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define IScriptableControl_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define IScriptableControl_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define IScriptableControl_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define IScriptableControl_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define IScriptableControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define IScriptableControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define IScriptableControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 


#define IScriptableControl_scan(This)	\
    ( (This)->lpVtbl -> scan(This) ) 

#define IScriptableControl_rescan(This)	\
    ( (This)->lpVtbl -> rescan(This) ) 

#define IScriptableControl_upload(This,pPages,pFilename,pFormat,pUrl,pUploadId,pResult)	\
    ( (This)->lpVtbl -> upload(This,pPages,pFilename,pFormat,pUrl,pUploadId,pResult) ) 

#define IScriptableControl_saveToFile(This,pPages,pFormat,pPath)	\
    ( (This)->lpVtbl -> saveToFile(This,pPages,pFormat,pPath) ) 

#define IScriptableControl_getDevices(This)	\
    ( (This)->lpVtbl -> getDevices(This) ) 

#define IScriptableControl_panX(This,pVal)	\
    ( (This)->lpVtbl -> panX(This,pVal) ) 

#define IScriptableControl_panY(This,pVal)	\
    ( (This)->lpVtbl -> panY(This,pVal) ) 

#define IScriptableControl_pan(This,pValX,pValY)	\
    ( (This)->lpVtbl -> pan(This,pValX,pValY) ) 

#define IScriptableControl_rotate(This,pVal)	\
    ( (This)->lpVtbl -> rotate(This,pVal) ) 

#define IScriptableControl_crop(This)	\
    ( (This)->lpVtbl -> crop(This) ) 

#define IScriptableControl_selectImage(This,pVal)	\
    ( (This)->lpVtbl -> selectImage(This,pVal) ) 

#define IScriptableControl_selectNextImage(This)	\
    ( (This)->lpVtbl -> selectNextImage(This) ) 

#define IScriptableControl_selectPreviousImage(This)	\
    ( (This)->lpVtbl -> selectPreviousImage(This) ) 

#define IScriptableControl_connect(This,pResult)	\
    ( (This)->lpVtbl -> connect(This,pResult) ) 

#define IScriptableControl_disconnect(This)	\
    ( (This)->lpVtbl -> disconnect(This) ) 

#define IScriptableControl_getCap(This,pCap,pResult)	\
    ( (This)->lpVtbl -> getCap(This,pCap,pResult) ) 

#define IScriptableControl_clear(This)	\
    ( (This)->lpVtbl -> clear(This) ) 

#define IScriptableControl_setFilter(This,pFormat,pPixelType,pFilter)	\
    ( (This)->lpVtbl -> setFilter(This,pFormat,pPixelType,pFilter) ) 

#define IScriptableControl_resume(This,pProceed)	\
    ( (This)->lpVtbl -> resume(This,pProceed) ) 

#define IScriptableControl_initializeDevice(This)	\
    ( (This)->lpVtbl -> initializeDevice(This) ) 

#define IScriptableControl_focus(This)	\
    ( (This)->lpVtbl -> focus(This) ) 

#define IScriptableControl_deleteImage(This,pIndex)	\
    ( (This)->lpVtbl -> deleteImage(This,pIndex) ) 

#define IScriptableControl_shiftImage(This,pIndex)	\
    ( (This)->lpVtbl -> shiftImage(This,pIndex) ) 

#define IScriptableControl_get_devices(This,pVal)	\
    ( (This)->lpVtbl -> get_devices(This,pVal) ) 

#define IScriptableControl_get_pixelType(This,pVal)	\
    ( (This)->lpVtbl -> get_pixelType(This,pVal) ) 

#define IScriptableControl_put_pixelType(This,pVal)	\
    ( (This)->lpVtbl -> put_pixelType(This,pVal) ) 

#define IScriptableControl_get_resolution(This,pVal)	\
    ( (This)->lpVtbl -> get_resolution(This,pVal) ) 

#define IScriptableControl_put_resolution(This,pVal)	\
    ( (This)->lpVtbl -> put_resolution(This,pVal) ) 

#define IScriptableControl_get_zoomTool(This,pVal)	\
    ( (This)->lpVtbl -> get_zoomTool(This,pVal) ) 

#define IScriptableControl_put_zoomTool(This,pVal)	\
    ( (This)->lpVtbl -> put_zoomTool(This,pVal) ) 

#define IScriptableControl_get_zoom(This,pVal)	\
    ( (This)->lpVtbl -> get_zoom(This,pVal) ) 

#define IScriptableControl_put_zoom(This,pVal)	\
    ( (This)->lpVtbl -> put_zoom(This,pVal) ) 

#define IScriptableControl_get_panTool(This,pVal)	\
    ( (This)->lpVtbl -> get_panTool(This,pVal) ) 

#define IScriptableControl_put_panTool(This,pVal)	\
    ( (This)->lpVtbl -> put_panTool(This,pVal) ) 

#define IScriptableControl_get_driverModel(This,pVal)	\
    ( (This)->lpVtbl -> get_driverModel(This,pVal) ) 

#define IScriptableControl_put_driverModel(This,pVal)	\
    ( (This)->lpVtbl -> put_driverModel(This,pVal) ) 

#define IScriptableControl_get_showDeviceUI(This,pVal)	\
    ( (This)->lpVtbl -> get_showDeviceUI(This,pVal) ) 

#define IScriptableControl_put_showDeviceUI(This,pVal)	\
    ( (This)->lpVtbl -> put_showDeviceUI(This,pVal) ) 

#define IScriptableControl_get_selectedImageIndex(This,pVal)	\
    ( (This)->lpVtbl -> get_selectedImageIndex(This,pVal) ) 

#define IScriptableControl_put_selectedImageIndex(This,pVal)	\
    ( (This)->lpVtbl -> put_selectedImageIndex(This,pVal) ) 

#define IScriptableControl_get_device(This,pVal)	\
    ( (This)->lpVtbl -> get_device(This,pVal) ) 

#define IScriptableControl_put_device(This,pVal)	\
    ( (This)->lpVtbl -> put_device(This,pVal) ) 

#define IScriptableControl_get_deviceIndex(This,pVal)	\
    ( (This)->lpVtbl -> get_deviceIndex(This,pVal) ) 

#define IScriptableControl_put_deviceIndex(This,pVal)	\
    ( (This)->lpVtbl -> put_deviceIndex(This,pVal) ) 

#define IScriptableControl_get_cropTool(This,pVal)	\
    ( (This)->lpVtbl -> get_cropTool(This,pVal) ) 

#define IScriptableControl_put_cropTool(This,pVal)	\
    ( (This)->lpVtbl -> put_cropTool(This,pVal) ) 

#define IScriptableControl_get_paperSource(This,pVal)	\
    ( (This)->lpVtbl -> get_paperSource(This,pVal) ) 

#define IScriptableControl_put_paperSource(This,pVal)	\
    ( (This)->lpVtbl -> put_paperSource(This,pVal) ) 

#define IScriptableControl_get_imageQuality(This,pVal)	\
    ( (This)->lpVtbl -> get_imageQuality(This,pVal) ) 

#define IScriptableControl_put_imageQuality(This,pVal)	\
    ( (This)->lpVtbl -> put_imageQuality(This,pVal) ) 

#define IScriptableControl_get_contrast(This,pVal)	\
    ( (This)->lpVtbl -> get_contrast(This,pVal) ) 

#define IScriptableControl_put_contrast(This,pVal)	\
    ( (This)->lpVtbl -> put_contrast(This,pVal) ) 

#define IScriptableControl_get_version(This,pVal)	\
    ( (This)->lpVtbl -> get_version(This,pVal) ) 

#define IScriptableControl_get_autoPosition(This,pVal)	\
    ( (This)->lpVtbl -> get_autoPosition(This,pVal) ) 

#define IScriptableControl_put_autoPosition(This,pVal)	\
    ( (This)->lpVtbl -> put_autoPosition(This,pVal) ) 

#define IScriptableControl_get_autoCompress(This,pVal)	\
    ( (This)->lpVtbl -> get_autoCompress(This,pVal) ) 

#define IScriptableControl_put_autoCompress(This,pVal)	\
    ( (This)->lpVtbl -> put_autoCompress(This,pVal) ) 

#define IScriptableControl_get_autoCompressionLevel(This,pVal)	\
    ( (This)->lpVtbl -> get_autoCompressionLevel(This,pVal) ) 

#define IScriptableControl_put_autoCompressionLevel(This,pVal)	\
    ( (This)->lpVtbl -> put_autoCompressionLevel(This,pVal) ) 

#define IScriptableControl_get_autoCompressInBackground(This,pVal)	\
    ( (This)->lpVtbl -> get_autoCompressInBackground(This,pVal) ) 

#define IScriptableControl_put_autoCompressInBackground(This,pVal)	\
    ( (This)->lpVtbl -> put_autoCompressInBackground(This,pVal) ) 

#define IScriptableControl_get_autoPause(This,pVal)	\
    ( (This)->lpVtbl -> get_autoPause(This,pVal) ) 

#define IScriptableControl_put_autoPause(This,pVal)	\
    ( (This)->lpVtbl -> put_autoPause(This,pVal) ) 

#define IScriptableControl_get_isPlatformSupported(This,pVal)	\
    ( (This)->lpVtbl -> get_isPlatformSupported(This,pVal) ) 

#define IScriptableControl_get_isFlatbedSupported(This,pResult)	\
    ( (This)->lpVtbl -> get_isFlatbedSupported(This,pResult) ) 

#define IScriptableControl_get_isFeederSupported(This,pResult)	\
    ( (This)->lpVtbl -> get_isFeederSupported(This,pResult) ) 

#define IScriptableControl_get_isDuplexSupported(This,pResult)	\
    ( (This)->lpVtbl -> get_isDuplexSupported(This,pResult) ) 

#define IScriptableControl_get_selectedIndex(This,pResult)	\
    ( (This)->lpVtbl -> get_selectedIndex(This,pResult) ) 

#define IScriptableControl_get_images(This,pResult)	\
    ( (This)->lpVtbl -> get_images(This,pResult) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* __IScriptableControl_INTERFACE_DEFINED__ */


#ifndef ___IScriptableControlEvents_DISPINTERFACE_DEFINED__
#define ___IScriptableControlEvents_DISPINTERFACE_DEFINED__

/* dispinterface _IScriptableControlEvents */
/* [uuid] */ 


EXTERN_C const IID DIID__IScriptableControlEvents;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("078CF228-7C0E-48B3-8310-3B05645E1DEB")
    _IScriptableControlEvents : public IDispatch
    {
    };
    
#else 	/* C style interface */

    typedef struct _IScriptableControlEventsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            _IScriptableControlEvents * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            _IScriptableControlEvents * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            _IScriptableControlEvents * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( 
            _IScriptableControlEvents * This,
            /* [out] */ UINT *pctinfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( 
            _IScriptableControlEvents * This,
            /* [in] */ UINT iTInfo,
            /* [in] */ LCID lcid,
            /* [out] */ ITypeInfo **ppTInfo);
        
        HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( 
            _IScriptableControlEvents * This,
            /* [in] */ REFIID riid,
            /* [size_is][in] */ LPOLESTR *rgszNames,
            /* [range][in] */ UINT cNames,
            /* [in] */ LCID lcid,
            /* [size_is][out] */ DISPID *rgDispId);
        
        /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            _IScriptableControlEvents * This,
            /* [annotation][in] */ 
            _In_  DISPID dispIdMember,
            /* [annotation][in] */ 
            _In_  REFIID riid,
            /* [annotation][in] */ 
            _In_  LCID lcid,
            /* [annotation][in] */ 
            _In_  WORD wFlags,
            /* [annotation][out][in] */ 
            _In_  DISPPARAMS *pDispParams,
            /* [annotation][out] */ 
            _Out_opt_  VARIANT *pVarResult,
            /* [annotation][out] */ 
            _Out_opt_  EXCEPINFO *pExcepInfo,
            /* [annotation][out] */ 
            _Out_opt_  UINT *puArgErr);
        
        END_INTERFACE
    } _IScriptableControlEventsVtbl;

    interface _IScriptableControlEvents
    {
        CONST_VTBL struct _IScriptableControlEventsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define _IScriptableControlEvents_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define _IScriptableControlEvents_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define _IScriptableControlEvents_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define _IScriptableControlEvents_GetTypeInfoCount(This,pctinfo)	\
    ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) 

#define _IScriptableControlEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo)	\
    ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) 

#define _IScriptableControlEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)	\
    ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) 

#define _IScriptableControlEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)	\
    ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */


#endif 	/* ___IScriptableControlEvents_DISPINTERFACE_DEFINED__ */


EXTERN_C const CLSID CLSID_ScriptableControl;

#ifdef __cplusplus

class DECLSPEC_UUID("EE58FDA9-77DE-4BCA-BF8A-D9A628FD71A9")
ScriptableControl;
#endif

EXTERN_C const CLSID CLSID_ScriptableDevice;

#ifdef __cplusplus

class DECLSPEC_UUID("6F6D780C-1A45-41CD-BFEB-CA78E79DFAD1")
ScriptableDevice;
#endif

EXTERN_C const CLSID CLSID_ScriptableDeviceIndexer;

#ifdef __cplusplus

class DECLSPEC_UUID("9C4D7985-989B-4EA1-953A-7043997BFE6D")
ScriptableDeviceIndexer;
#endif

EXTERN_C const CLSID CLSID_ScriptableDeviceCapability;

#ifdef __cplusplus

class DECLSPEC_UUID("38B41264-BE51-47DA-BA60-DB624C7C786B")
ScriptableDeviceCapability;
#endif

EXTERN_C const CLSID CLSID_ScriptableImageIndexer;

#ifdef __cplusplus

class DECLSPEC_UUID("5A71C8C6-60DD-45CB-BA0D-B4E38511E9C4")
ScriptableImageIndexer;
#endif

EXTERN_C const CLSID CLSID_ScriptableImage;

#ifdef __cplusplus

class DECLSPEC_UUID("5E787946-99AC-45F4-B3CC-FFBA68C2F6A5")
ScriptableImage;
#endif
#endif /* __comLib_LIBRARY_DEFINED__ */

/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


